﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
namespace Vehicle.Web.Pages.Cargo
{
    /// <summary>
    /// Copyright (C) M-Tear团队
    /// 文 件 名：Cargo_Edit.aspx.cs
    /// 版    本：v1.00.0000
    /// 创建标识：2009-07-12   Created by 杨光远 V1.00.0000
    /// 功能说明：编辑承运单信息页面类
    /// 注意事项：无
    /// 
    /// 更新记录：
    /// 
    /// </summary>
    public partial class Cargo_Edit : Component.PageBase
    {
        #region ---基本变量实例化---
        BLL.Cargo b_Cargo = new Vehicle.BLL.Cargo();
        BLL.Log b_Log = new Vehicle.BLL.Log();
        Model.CargoInfo m_CargoInfo = new Vehicle.Model.CargoInfo();
        #endregion

        #region ---基本方法---
        /// <summary>
        /// 页面加载事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                CargoDataBind();//绑定承运单信息
            }
        }


        /// <summary>
        /// 绑定承运单信息
        /// </summary>
        public void CargoDataBind()
        {
            if (Request.QueryString["id"] != null && Request.QueryString["id"] != "")
            {
                DataTable dt = b_Cargo.GetModel(new Vehicle.Model.ComponentsInfo("Cargo", "C_ID", Request.QueryString["id"].ToString(), "C_ID"));
                if (dt.Rows.Count > 0)
                {
                    txt_C_Card.Text = dt.Rows[0]["C_Card"].ToString();//承运单编号
                    txt_C_weight.Text = dt.Rows[0]["C_weight"].ToString();//承运重量
                    txt_C_Route.Text = dt.Rows[0]["C_Route"].ToString();//承运路线
                    txt_C_Addresss.Text = dt.Rows[0]["C_Addresss"].ToString();//承运目的地
                    txt_C_contract.Text = dt.Rows[0]["C_contract"].ToString();//合同号
                    txt_C_GoodsName.Text = dt.Rows[0]["C_GoodsName"].ToString();//货物名称
                    txt_C_LoadAddr.Text = dt.Rows[0]["C_LoadAddr"].ToString();//货物装车地址
                    Gmdp_C_CTime.Date = Common.TextHelper.StringToDateTime(dt.Rows[0]["C_CTime"].ToString());//货物装车时间
                    Gmdp_C_StartTime.Date = Common.TextHelper.StringToDateTime(dt.Rows[0]["C_StartTime"].ToString());//要求起始时间
                    Gmdp_C_EndTime.Date = Common.TextHelper.StringToDateTime(dt.Rows[0]["C_EndTime"].ToString());//要求结束时间
                    drop_C_Receive.SelectedValue = dt.Rows[0]["C_Receive"].ToString();//是否被接收    1是 2否  3审核
                    drop_C_Result.SelectedValue = dt.Rows[0]["C_Result"].ToString();//运输结果     	1运输中 2已完成 3失败 4审核
                    txt_C_Time.Text = dt.Rows[0]["C_Time"].ToString();//添加时间
                    txt_C_AddName.Text = dt.Rows[0]["C_AddName"].ToString();//添加人姓名
                    hf_C_LastTime.Value = dt.Rows[0]["C_LastTime"].ToString();//最后表单修改时间
                    txt_C_Fax.Text = dt.Rows[0]["C_Fax"].ToString();//传真号码
                    txt_C_Tel.Text = dt.Rows[0]["C_Tel"].ToString();//客户公司联系电话
                    txt_C_CAddress.Text = dt.Rows[0]["C_CAddress"].ToString();//客户公司地址
                    txt_C_CName.Text = dt.Rows[0]["C_CName"].ToString();//客户公司名称
                    txt_C_Contact.Text = dt.Rows[0]["C_Contact"].ToString();//客户姓名
                    txt_C_Mobilephone.Text = dt.Rows[0]["C_Mobilephone"].ToString();//客户手机
                    txt_C_HomePhone.Text = dt.Rows[0]["C_HomePhone"].ToString();//客户家庭电话
                    txt_C_Note.Text = dt.Rows[0]["C_Note"].ToString();//备注 
                    txt_C_Sendee.Text = dt.Rows[0]["C_Sendee"].ToString();//货物接收人
                    txt_C_STel.Text = dt.Rows[0]["C_STel"].ToString();//货物接收人联系电话
                    hf_C_Card.Value = dt.Rows[0]["C_Card"].ToString();//承运单编号
                    txt_C_Money.Text = dt.Rows[0]["C_Money"].ToString();//承运金额
                }
                else
                {
                    Common.MessageHelper.AlertBack("该记录已删除!");
                }
            }
            else
            {
                Common.MessageHelper.AlertBack("您的操作有误,请重新尝试!");
            }
        }
        /// <summary>
        /// 修改数据逻辑判断是否有数据更新事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btn_Add_Click(object sender, EventArgs e)
        {
            if (Request.QueryString["id"] != null && Request.QueryString["id"] != "")
            {
                if (hf_Set.Value == "1")//取值判断
                {
                    //提交前判断数据是否有被改变
                    if (b_Cargo.GetModel(new Vehicle.Model.ComponentsInfo("Cargo", "C_ID", Request.QueryString["id"].ToString(), "C_ID")).Rows[0]["C_LastTime"].ToString() == hf_C_LastTime.Value)
                    {
                        Repeat();
                    }
                    else
                    {
                        d_Show.Visible = true;
                        hf_Set.Value = "0";
                    }
                }
                else
                {
                    Repeat();
                }
            }
            else
            {
                Common.MessageHelper.AlertBack("您的操作有误,请重新尝试!");
            }
        }
        /// <summary>
        /// 逻辑判断是否有编号重复
        /// </summary>
        public void Repeat()
        {
            //判断当前输入的承运单编号是否和之前的编号相同,不相同则先判断是否有重复的编号
            if (txt_C_Card.Text.Trim() != hf_C_Card.Value.ToString())
            {
                //添加前判断是否已经有该编号的承运单
                if (b_Cargo.GetModel(new Vehicle.Model.ComponentsInfo("Cargo", "C_IsDelete", "0", "C_Card", txt_C_Card.Text.Trim(), "C_ID")).Rows.Count == 0)
                {
                    UpdateDate();
                }
                else
                {
                    Common.MessageHelper.Alert("已经有相同该编号的承运单,请重新填写");
                }
            }
            else
            {
                UpdateDate();
            }
        }

        /// <summary>
        /// 修改数据
        /// </summary>
        protected void UpdateDate()
        {
            m_CargoInfo.C_ID = Common.TextHelper.StringToInt(Request.QueryString["id"].ToString());
            m_CargoInfo.C_Card = txt_C_Card.Text.Trim();//承运单编号
            m_CargoInfo.C_weight = Common.TextHelper.StringTofloat(txt_C_weight.Text.Trim());//货物重量
            m_CargoInfo.C_Route = txt_C_Route.Text.Trim();//承运路线
            m_CargoInfo.C_Addresss = txt_C_Addresss.Text.Trim();//货物承运地址
            m_CargoInfo.C_contract = txt_C_contract.Text.Trim();//合同号
            m_CargoInfo.C_GoodsName = txt_C_GoodsName.Text.Trim();//货物名称
            m_CargoInfo.C_LoadAddr = txt_C_LoadAddr.Text.Trim();//货物装车地址
            m_CargoInfo.C_CTime = Common.TextHelper.StringToDateTime(Gmdp_C_CTime.DateString);//货物装车时间
            m_CargoInfo.C_StartTime = Common.TextHelper.StringToDateTime(Gmdp_C_StartTime.DateString);//要求起始时间
            m_CargoInfo.C_EndTime = Common.TextHelper.StringToDateTime(Gmdp_C_EndTime.DateString);//要求结束时间
            m_CargoInfo.C_Receive = Common.TextHelper.StringToInt(drop_C_Receive.SelectedValue);//是否被接收    1是 2否  3审核 
            m_CargoInfo.C_Result = Common.TextHelper.StringToInt(drop_C_Result.SelectedValue);//运输结果     	1运输中 2已完成 3失败 4审核
            m_CargoInfo.C_Time = Common.TextHelper.StringToDateTime(txt_C_Time.Text);//添加时间
            m_CargoInfo.C_AddName = txt_C_AddName.Text.Trim();//添加人姓名
            m_CargoInfo.C_LastTime = DateTime.Now;//最后更新时间 默认为当前时间
            m_CargoInfo.C_Fax = txt_C_Fax.Text.Trim(); //传真号码
            m_CargoInfo.C_Tel = txt_C_Tel.Text.Trim();//电话号码
            m_CargoInfo.C_CAddress = txt_C_CAddress.Text.Trim();//客户公司联系地址
            m_CargoInfo.C_CName = txt_C_CName.Text.Trim();//客户公司名称
            m_CargoInfo.C_Contact = txt_C_Contact.Text.Trim();//客户姓名
            m_CargoInfo.C_Mobilephone = txt_C_Mobilephone.Text.Trim();//客户移动电话
            m_CargoInfo.C_HomePhone = txt_C_HomePhone.Text.Trim();//客户家庭电话
            m_CargoInfo.C_Note = Common.TextHelper.CheckStr(txt_C_Note.Text);//承运单备注
            m_CargoInfo.C_IsDelete = 0;//是否删除
            m_CargoInfo.C_Sendee = txt_C_Sendee.Text.Trim();//接收人姓名
            m_CargoInfo.C_STel = txt_C_STel.Text.Trim();//接收人地址
            m_CargoInfo.C_Money = Common.TextHelper.StringTofloat(txt_C_Money.Text.Trim());//承运金额
            b_Cargo.Update(m_CargoInfo);//修改数据
            b_Log.Add(new Vehicle.Model.LogInfo(session_ID, DateTime.Now, "成功修改编号为" + txt_C_Card.Text.Trim() + "的承运单"));//添加日志
            Common.MessageHelper.AlertRedirect("承运单信息修改成功", "Main.aspx");
        }

        #endregion
    }
}
